/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package treeship.core.service;

import treeship.core.algorithm.EICG;
import treeship.core.ship.space.Position;
import treeship.core.ship.space.Shape;

/**
 *
 * @author Moonchild
 */
public abstract class DimensionalFactory {

    /**
     * Transforms the seeds into a double ranging from 0 to 1
     * @param staticPositionSeed
     * @param shipSeed
     * @return
     */
    protected static double seedsTo01Double(Long shipSeed, Long staticPositionSeed) {
        double double01FromSeeds = EICG.staticGetRandDouble(shipSeed + staticPositionSeed);
        return double01FromSeeds;
    }

    public abstract Position createPositionFromSeed(Long shipSeed, Long staticPositionSeed, Shape owner, Shape inner);

    public abstract Shape createNewShape();
}
